/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControladoresUI;

import AdmonHorarios.AdminCarreras;
import AdmonHorarios.Aula;
import AdmonHorarios.Calendario;
import AdmonHorarios.Catedratico;
import AdmonHorarios.Curso;
import AdmonHorarios.Enlace;
import AdmonHorarios.Hora;
import ManagersUI.SeleccionDatosCursosManager;
import java.util.ArrayList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javax.swing.JOptionPane;

/**
 * FXML Controller class
 *
 * @author Chejo
 */
public class SeleccionDatosCursosController {
    
    SeleccionDatosCursosManager seleccionDatosCursosManager;
    @FXML private ComboBox cmbCarrera;
    @FXML private ComboBox cmbCiclo;
    @FXML private ComboBox cmbJornada;
    @FXML private ComboBox cmbSemestre;
    AdminCarreras datos = new AdminCarreras();
    
    Calendario calendario;
    public ArrayList <Curso> Cursos = new ArrayList <Curso> ();
    public ArrayList <Catedratico> Catedraticos = new ArrayList <Catedratico> ();
    public ArrayList <Aula> Aulas = new ArrayList <Aula> ();
    public ArrayList <Hora> horas = new ArrayList <Hora> ();
    
    public void initManager(final SeleccionDatosCursosManager seleccionDatosCursosManager) {
        this.seleccionDatosCursosManager = seleccionDatosCursosManager;
        cmbCarrera.setItems(datos.obtenerCarreras());
        cmbJornada.setItems(datos.obtenerJornadas());
        cmbSemestre.setItems(datos.obtenerSemestres());
    } 
    
    @FXML
    private void cargarCiclos(ActionEvent event){
        cmbCiclo.setItems(null);
        System.out.println(cmbCarrera.getSelectionModel().getSelectedItem().toString());
        cmbCiclo.setItems(datos.obtenerCiclos(cmbCarrera.getValue().toString()));
    }
    
    @FXML
    private void cambiarPanel(ActionEvent event){
        if(cmbCiclo.getValue()==null||cmbCarrera.getValue()==null||cmbJornada.getValue()==null||cmbSemestre.getValue()==null){
            JOptionPane.showMessageDialog(null, "Debe seleccionar todos los campos", "Errror", JOptionPane.INFORMATION_MESSAGE);
            return;
        }
        Catedraticos.clear();
        Cursos.clear();
        //Filtrar Periodos segun jornada
        datos.filtrarPeriodos(cmbSemestre.getValue().toString().substring(0, 4), cmbSemestre.getValue().toString().substring(16, 17), horas);
        //Filtra Cursos y Secciones del ciclo:
        datos.filtrarCursosSecciones(Cursos, cmbCarrera.getValue().toString(),
                cmbCiclo.getValue().toString(), cmbJornada.getValue().toString(), 
                cmbSemestre.getValue().toString().substring(0, 4), cmbSemestre.getValue().toString().substring(16, 17));
        //Objeto Calendario
        calendario=new Calendario();
        //Seteamos su información
        calendario.setCarrera(cmbCarrera.getValue().toString());
        calendario.setCiclo(Integer.parseInt(cmbCiclo.getValue().toString()));
        calendario.setSemestre(cmbSemestre.getValue().toString());
        calendario.setJornada(cmbJornada.getValue().toString());
        //Enlace es una fila del calendario
        Enlace enlace=new Enlace();
        enlace.setTiempo(horas.get(0));
        calendario.setEnlace(enlace);
        for (int i=1; i<horas.size(); i++){
            enlace=new Enlace();
            enlace.setTiempo(horas.get(i));
            calendario.setEnlace(enlace);
        }
        datos.buscarCalendario(calendario, horas, cmbCarrera.getValue().toString(), 
                cmbCiclo.getValue().toString(), cmbJornada.getValue().toString(), 
                cmbSemestre.getValue().toString().substring(0, 4), cmbSemestre.getValue().toString().substring(16, 17));
        
        seleccionDatosCursosManager.showPanelSeleccionCursoSeccion(cmbCarrera.getValue().toString(), 
                cmbCiclo.getValue().toString(), 
                cmbJornada.getValue().toString(),cmbSemestre.getValue().toString().substring(0, 4),
                cmbSemestre.getValue().toString().substring(16, 17),Cursos,Catedraticos,Aulas,horas,calendario);
    }
    
    

    /**
     * Initializes the controller class.
     */   

public void initialize() {}
  
}
